

function stringify(obj: Object) {
    return JSON.stringify(obj, (_, val) => {
        if (typeof val === 'function') {
            return `${val}`;
        }
        return val;
    });
}

function parse(str: string) {
    return JSON.parse(str, (_, v) => {
        if (v !== null && v.indexOf && v.indexOf('function') > -1) {
            return eval(`(${v})`);
        }
        return v;
    });
}


export function jsonClone(obj: Object) {
    return parse(stringify(obj));
}


/*深拷贝代码*/
export function deepClone(obj: Object) {
    return JSON.parse(JSON.stringify(obj));
}
